package com.shiyi.contexts;

import com.shiyi.enums.DataSourceType;

/**
 * @author wangzhanshuai
 * @date 2021/3/5 3:28 上午
 * @since 1.0
 */
public class DynamicDataSourceContextHolder {

    private static final ThreadLocal<DataSourceType> THREAD_LOCAL = new ThreadLocal<>();

    /**
     * 获取数据源类型
     * @return {@link DataSourceType}
     */
    public static DataSourceType get() {
        return THREAD_LOCAL.get();
    }

    /**
     * 设置数据源类型
     * @param dataSourceType 数据源类型
     */
    public static void set(DataSourceType dataSourceType) {
        THREAD_LOCAL.set(dataSourceType);
    }

    /**
     * 清除数据源类型，避免产生内存泄漏
     */
    public static void clear() {
        THREAD_LOCAL.remove();
    }
}
